package com.jiaai.trade.api;


import com.jiaai.family.model.TmemberVO;
import com.jiaai.trade.model.TCountTradeVO;
import com.jiaai.trade.model.TTradeAnchorIdVO;
import com.jiaai.trade.model.TTradeVO;

import java.math.BigDecimal;
import java.util.List;

/**
 * <p>
 * TODO
 * </p>
 *
 * @author 佳爱网络科技
 * @version V1.0
 * @title TTradeApi
 * @since 2017/10/19
 */
public interface TTradeApi {
    /**
     * app端接口返回所有的公会列表带公会人数统计
     * @param curr
     * @param tTradeVO
     * @return
     */
    Object find(Integer curr, TTradeVO tTradeVO) throws Exception;
    /**
     *后端接口返回所有的公申请中的公会列表
     * @param curr
     * @param tTradeVO
     * @return
     */
    Object findAll(Integer curr, TTradeVO tTradeVO) throws Exception;
    /**
     *后端接口返回所有的公会列表
     * @param curr
     * @param tTradeVO
     * @return
     */
    Object findByAll(Integer curr, TTradeVO tTradeVO) throws Exception;
    /**
     *app添加公会
     * @param tTradeVO
     * @return
     */
    Object addTrade(TTradeVO tTradeVO) throws Exception;
    /**
     *修改公会
     * @param tTradeVO
     * @return
     */
    Object update(TTradeVO tTradeVO) throws Exception;
    /**
     *查询单个公会的信息
     * @param tradeId
     * @return
     */
    Object findById(Integer tradeId) throws Exception;
    /**
     *删除单个公会
     * @param tradeId
     * @return
     */
    Object delete(Integer tradeId) throws Exception;
    /**
     *查询单个公会下的所有成员
     * @param tTradeVO
     * @return
     */
    Object findByAllRole(Integer curr,TTradeVO tTradeVO) throws Exception;
    /**
     *统计单个公会的所有主播数据和收益
     * @param tCountTradeVO
     * @return
     */
    Object countTrade(Integer curr,TCountTradeVO tCountTradeVO) throws Exception;
    /**
     *审核通过公会修改审核状态
     * @param tradeId
     * @param tradeState
     * @return
     */
    Object changeState(Integer tradeId,Integer tradeState) throws Exception;
    /**
     *修改公会比例
     * @param tradeId
     * @param commission
     * @return
     */
    Object change(Integer tradeId,BigDecimal commission) throws Exception;
    /**
     *查询单个公会下的所有主播的直播详情
     * @param tTradeAnchorIdVO
     * @return
     */
    Object findByAllAnchorId(Integer curr,TTradeAnchorIdVO tTradeAnchorIdVO) throws Exception;

    /**
     *统计单个主播的关注量
     * @param anchorId
     * @return
     */
    Integer count(String anchorId);

    /**
     *查单个主播的直播礼物收益详情
     * @param liveId
     * @return
     */
    List giftMoney(Integer liveId);


    /**
     *统计单个公会的人数
     * @param tradeId
     * @return
     */
    Integer countNum(Integer tradeId);

    Object allauthor(Integer curr, TmemberVO tmemberVO) throws Exception;
}
